<script>
    //回调地狱 (生成器，promise)
    //1秒aaa,aaa后2秒bbb,bbb后3秒ccc
    // setTimeout(() => {
    //     console.log("aaa");
    //     setTimeout(() => {
    //         console.log("bbb");
    //         setTimeout(() => {
    //             console.log("ccc");
    //         }, 3000);
    //     }, 2000);
    // }, 1000);

    function one(){
        setTimeout(() => {
            console.log("aaa");
            iterator.next();
        }, 1000);
    }

    function two(){
        setTimeout(() => {
            console.log("bbb");
            iterator.next();
        }, 2000);
    }

    function three(){
        setTimeout(() => {
            console.log("ccc");
        }, 3000);
    }

    function * gen(){
        yield one();
        yield two();
        yield three();
    }

    const iterator=gen();
    iterator.next();

</script>